import pyautogui,time

#screen's width and height in pixels
#得到屏幕大小
print(pyautogui.size())
width,height=pyautogui.size()#该函数能返回一个元组

#所有pyautogui指令都要暂停1s
pyautogui.PAUSE=1

#得到鼠标当前位置
print(pyautogui.position())

#Moving the Mouse
#用绝对位置移动鼠标
for i in range(2):
    pyautogui.moveTo(100,100,duration=0.25)#前面两个是x坐标和y坐标，后面一个是停顿间隔，
    pyautogui.moveTo(200,100,duration=0.25)
    pyautogui.moveTo(200,200,duration=0.25)
    pyautogui.moveTo(100,200,duration=0.25)

#让程序休眠2秒
time.sleep(2)

#用相对位置移动鼠标
for i in range(2):
    pyautogui.moveRel(100,0)#前两个是x和y方向上的相对位移量，其正负表示上下左右,正表示右下
    pyautogui.moveRel(0,100)
    pyautogui.moveRel(-100,0)
    pyautogui.moveRel(0,-100)

#Click the mouse
# pyautogui.click()=pyautogui.mouseDown()+pyautongui.mouseUp()
pyautogui.click(10,5)#(10,5)为鼠标点击的坐标位置
pyautogui.click(100,150,button='left')#后面的button为鼠标按键，如果什么都不说，默认为鼠标左键
pyautogui.click(120,145,button='middle')

#Dragging the mouse 拖动鼠标
#第一行为拖动到相关位置，第二行为按相对位移量拖动鼠标``
pyautogui.dragTo(100,100,button='left',duration=0.25)
pyautogui.dragTo(100,100,button='right',duration=0.25)

#Scrolling the mouse 滑动鼠标滚轮
pyautogui.scroll(10,x=10,y=10)

#Getting a screenshot
im=pyautogui.screenshot()
print(im.getpixel((20,200)))#此处是得到截屏位置的颜色，返回值是一个RGB值

#Analyzing the screenshot
print(pyautogui.pixelMatchesColor(50,200,(222,186,212)))
#上一句话的解释：此处是为了看(50,200)位置处的颜色是否为(222,186,212),若是，则返回True，不是，则返回False

#Image recognition
imageLocation=pyautogui.locateOnScreen('a screenshot example.jpg',confidence=0.5)
#上一句话的解释: pyautogui对当前界面截图，然后将WeChat.bmp与该截图比对识别，找到WeChat.bmp在截图的位置,返回的是图像大小和响应坐标的向量组合
#属性confidence代表识别图片的精度，范围在0-1，0精度最低，1精度最高
coordination=pyautogui.center(imageLocation)
print(coordination)
pyautogui.click(coordination)
#还可以 pyautogui.locateAllOnScreen('flower.png')，这样返回的是一个列表

#Sending a string from the keyboard
pyautogui.click(100,100)
pyautogui.typewrite('Hellow world!\n',0.1)#后面的值是duration
pyautogui.typewrite(['a','b','left','left','X','Y'])#这里的左左会让鼠标光标向左移动两次

#Key Names 可以看所有的键盘按键
import pprint
# pprint.pprint(pyautogui.KEYBOARD_KEYS) pprint可以让输出更好看

#其它键盘操作
pyautogui.keyDown('shift')
pyautogui.press('2')
pyautogui.keyUp('shift')
#上面三个操作与下面这句话启到同样的作用
pyautogui.press('@')

#Hotkey Combinations 组合键
pyautogui.click(100,100)
pyautogui.hotkey('command','a') #ctrl a
pyautogui.hotkey('command','c')#ctrl c
pyautogui.hotkey('option','right')#移动到行文末尾
pyautogui.hotkey('command','v')#ctrl v